/**
 * 
 */
package br.com.sc.view.fachada;

import java.util.List;

import br.com.sc.dto.RetornoDTO;
import br.com.sc.dto.SCReqDTO;
import br.com.sc.dto.SelGeralReqDTO;
import br.com.sc.excecao.SCException;
import br.com.sc.negocio.entidade.Seguidor;

/**
 * @author Flavio Canedo
 *
 */
public class SeguidorFachada extends SCFachada implements IFachadaCrud {

	private static final Object CHAVE_SEGUIDOR = "seguidor";

	/**
	 * @see br.com.sc.view.fachada.IFachadaCrud#incluirDados(br.com.sc.dto.SCReqDTO)
	 */
	@Override
	public RetornoDTO incluirDados(SCReqDTO scReqDTO) throws SCException {
		Seguidor seguidor = (Seguidor) scReqDTO.getDados().get(CHAVE_SEGUIDOR);
    	seguidorNegocio.incluir(seguidor);
		return new RetornoDTO();
	}

	/**
	 * @see br.com.sc.view.fachada.IFachadaCrud#alterarDados(br.com.sc.dto.SCReqDTO)
	 */
	@Override
	public RetornoDTO alterarDados(SCReqDTO scReqDTO) throws SCException {
		Seguidor seguidor = (Seguidor) scReqDTO.getDados().get(CHAVE_SEGUIDOR);
    	seguidorNegocio.alterar(seguidor);
		return new RetornoDTO();
	}

	/**
	 * @see br.com.sc.view.fachada.IFachadaCrud#excluirDados(br.com.sc.dto.SCReqDTO)
	 */
	@Override
	public RetornoDTO excluirDados(SCReqDTO scReqDTO) throws SCException {
		Seguidor seguidor = (Seguidor) scReqDTO.getDados().get(OBJETO_EXCLUIDO);
    	seguidorNegocio.excluir(seguidor.getIdseguidor());
		return new RetornoDTO();
	}

	/** 
	 * @see br.com.sc.view.fachada.IFachadaCrud#obterDados(br.com.sc.dto.SelGeralReqDTO)
	 */
	@Override
	public RetornoDTO obterDados(SelGeralReqDTO reqDTO) throws SCException {
		Seguidor filtroSeguidor = (Seguidor) reqDTO.getDados().get(FILTRO);
		List<Seguidor> listaSeguidores = seguidorNegocio.consultar(filtroSeguidor);
		
		RetornoDTO retornoDTO = new RetornoDTO();
		retornoDTO.getDados().put(LISTA_DADOS, listaSeguidores);
		return retornoDTO;
	}

}
